
int slice_pool_max_forward_cuda( THCudaTensor * data_tensor, THCudaIntTensor * slice_idx_tensor, int num_slice, int num_batch, int channels, int num_points, THCudaTensor * output_tensor, THCudaIntTensor * pool_mask_tensor );

int slice_pool_max_backward_cuda( THCudaTensor * top_grad_tensor, THCudaIntTensor * pool_mask_tensor, int num_slice, int num_batch, int channels, THCudaTensor * output_tensor );

int slice_pool_avg_forward_cuda( THCudaTensor * data_tensor, THCudaIntTensor * slice_idx_tensor, THCudaIntTensor * slice_counts_tensor, int num_slice, int num_batch, int channels, int num_points, THCudaTensor * output_tensor);

int slice_pool_avg_backward_cuda( THCudaTensor * top_grad_tensor, THCudaIntTensor * slice_idx_tensor, THCudaIntTensor * slice_counts_tensor, int num_slice, int num_batch, int channels, int num_points, THCudaTensor * output_tensor );
